package com.ikas.ai.server.module.data.controller;

import cn.hutool.core.bean.BeanUtil;
import com.ikas.ai.handle.JsonResult;
import com.ikas.ai.server.module.data.model.dto.DataMeteQueryDto;
import com.ikas.ai.server.module.data.model.DataMete;
import com.ikas.ai.server.module.data.model.vo.DataMeteDdVo;
import com.ikas.ai.server.module.data.service.DataMeteService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 基础测点(含响应项)管理
 * @author wuyf
 * @date 2023/11/1 11:14
 */
@RestController
@RequestMapping("/dataMete")
public class DataMeteController {

    @Resource
    private DataMeteService dataMeteService;

    /**
     * 列表查询
     * @param queryDto 入参对象
     * @return list of dataMete
     */
    @GetMapping("/list")
    public JsonResult listDataMete(DataMeteQueryDto queryDto) {
        return JsonResult.ok(dataMeteService.listDataMete(queryDto));
    }

    /**
     * 下拉选的列表查询
     * @param queryDto 入参对象
     * @return list of dataMeteDdVo
     */
    @GetMapping("/listForDropDown")
    public JsonResult listForDropDown(DataMeteQueryDto queryDto) {
        List<DataMete> dataMetes = dataMeteService.listDataMete(queryDto);
        List<DataMeteDdVo> dmtVos = dataMetes.stream()
                .map(dmt -> BeanUtil.copyProperties(dmt, DataMeteDdVo.class))
                .distinct()
                .collect(Collectors.toList());

        return JsonResult.ok(dmtVos);
    }

}
